home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / bjck.src < prev    next >
Text File  |  1990-10-09  |  12KB  |  305 lines

  1. %%HP: T(3)A(R)F(.);
  2. @ by Ron Dippold; see shareware notice in "ABOUT" routine.
  3. DIR
  4.   ABOUT
  5.     \<< # 83h # 40h PDIM MBB PICT STO
  6.       PICT { # 0h # 39h } # 83h # 7h BLANK REPL
  7.       57 "(C)1990 Ron Dippold" 2 AB2
  8.       PICT { # 12h # 4h } # 5Fh # 31h BLANK REPL
  9.       { # 13h # 5h } { # 6Fh # 33h } BOX
  10.       7 "48 Blackjack V1" 2 AB2
  11.       15 "- THIS IS SHAREWARE -" 1 AB2
  12.       21 "IF YOU KEEP THIS YOU" 1 AB2
  13.       27 "MUST SEND $5 TO" 1 AB2
  14.       33 "- RON DIPPOLD JR. -" 1 AB2
  15.       39 "8318 COUNTERPANE LN" 1 AB2
  16.       45 "JUNEAU, AK 99801" 1 AB2
  17.       { # 0h # 0h } PVIEW 0 WAIT DROP PLAY
  18.     \>>
  19.   PLAY
  20.     \<< RCLF 'FLGS' STO -40 CF # 83h # 40h PDIM { # 0h # 0h } PVIEW 50
  21.       'BET' STO 1 SF
  22.       IF NC
  23.       THEN 1 CF
  24.       END 1000 'M' STO
  25.       DO 1
  26.         IF FS?
  27.         THEN SHUFL
  28.         END BJH
  29.       UNTIL 2 FS?
  30.       END
  31.     \>>
  32.   DC
  33.     \<< OBJ\-> DROP \-> l c s
  34.       \<< PICT l
  35.         IF s
  36.         THEN EC { # 2h # 2h } c 2 \->GROB REPL { # 8h # 12h } c 2 \->GROB
  37.         REPL { # 4h # Ah } 'SUIT(s)' EVAL REPL
  38.         ELSE BC
  39.         END
  40.         IF 2 FS?
  41.         THEN { # 0h # 0h } { # 7h # 1Ah } SUB
  42.         END REPL
  43.       \>>
  44.     \>>
  45.   DEAL
  46.     \<<
  47.       IF 1 FC?
  48.       THEN
  49.         IF NC
  50.         THEN \-> P
  51.           \<< 'CDS(NC )' EVAL -1 'NC' STO+ DUP 'PC(P)' EVAL 8 * R\->B P 1 -
  52.             29 * R\->B 2 \->LIST OVER 3
  53.             IF FS?
  54.             THEN DROP { "" 0 }
  55.             END 2 CF DC 'PC(P)' EVAL 1 + 'PC(P)' STO 1 \->LIST 'PT(P)' EVAL
  56.           SWAP + 'PT(P)' STO DROP
  57.           \>>
  58.         ELSE 1 SF DROP
  59.         END
  60.       END
  61.     \>>
  62.   BLNK
  63.     \<< PICT { # 0h # 39h } # 83h # 7h BLANK REPL MSG .5 WAIT PICT RCL SWAP 1 3
  64.       START DUP PICT { # 0h # 0h } ROT REPL .5 WAIT SWAP
  65.       NEXT DROP2
  66.     \>>
  67.   MSG
  68.     \<< 2 \->GROB DUP
  69.       SIZE \-> X Y
  70.       \<< MPIC { # 0h # 0h } X 6 + Y 6 + 2 \->LIST SUB
  71.         SWAP { # 4h # 4h } SWAP GXOR
  72.         MPIC2 { # 0h # 0h } X 4 + Y 5 + 2 \->LIST SUB
  73.         X 3 + Y 3 + BLANK { # 1h # 1h }
  74.         SWAP REPL { # 1h # 1h } SWAP GXOR
  75.         PICT RCL SWAP PICT SWAP
  76.         127 X - 2 / 53 Y - 2 / 2 \->LIST SWAP REPL
  77.       \>>
  78.     \>>
  79.   PT { { { "3" 1 } { "5" 4 } } { { "4" 4 } { "8" 1 } { "T" 3 } } }
  80.   PC { 2 3 }
  81.   SCOR
  82.     \<< 5 CF PT SWAP GET OBJ\-> 0 SWAP 1 SWAP
  83.       START SWAP OBJ\-> DROP2 "A23456789T" SWAP POS
  84.         IF DUP NOT
  85.         THEN DROP 10
  86.         END
  87.         IF DUP 1 ==
  88.         THEN 5 SF
  89.         END +
  90.       NEXT
  91.     \>>
  92.   AB2
  93.     \<< \->GROB DUP SIZE DROP 133 SWAP - 2 / ROT R\->B 2 \->LIST SWAP PICT 3
  94.       ROLLD REPL
  95.     \>>
  96.   SHOWC
  97.     \<< \-> P
  98.       \<< # 0h P 1 - 29 * R\->B 2 \->LIST ' PT(P)' EVAL 1 GET 2 SF DC 2 CF
  99.       \>>
  100.     \>>
  101.   MBB
  102. GROB 131 64 00007555555555555555BAAD46440810000000755555555555555532A906E40855501000755555555555555537A9E6040855501000755555555555555530A11E040855503000FFFF75555555555530A1FF040855501000FFFFF5555555555530A91C040855501000300087555555555530A61074085550000030000000000000000000009708555000003000FFFFFFFFFFFFFFFF99040855500000300010000000000000009406085550000030009AB2829A30C300005306085550000030009AA28AAA80A0000097070855500000300019A28BBA30C1000097C60855500000F81019A28A2980820000DF3E0855500000FD3019B38A2930E1000094070855500000FF701000000000000000D4C70855501000FF70FFFFFFFFFFFFFFFF5FF708FF701000FF70000000000000000045E708FF703000FF700655DF555F75306EBAC50810001000FF30065DFFAAAE7530AB7B840810001000F100000000000000000000000810000000BDFFFFFFFFFFFFFFFFFFFFF70810000000350000000000000000000004081000000034E1300000022000008700140810000000342220000002200000880014E810000000342220000002200000880014481000000034222C1FC104172AE088C934593000000034E120A02208882A10872214FB7000000034202CB0E308882A0088E314FB70000000342022A02008882A00882014FB70000020342022A02008882A00882054F930000070F4207C3FC10807CB0087C124F9100018F0F50000000000000000000004E8F0001CF1FDFFFFFFFFFFFFFFFFFFFFF748F10038F0F1000000000000000000000008F3001070FF700EBAFBAAAAF5302F5495E8F3001020FF700E75F7555DF5302FDF9519F3000000FF300EFA60000000002E451419F1000000FF100E755FFFFFFF7024EF3419F0000831BF000EFA2100000040EFFFF71810000441370006F551200000400000001810000441320006FB21200000400000001810000441300006F751F00000400000001830000441300006DF292000004000000C7810000441300006DF717000004000000008100004413000065F71A00000400000000C100004413000065F79700000400000000F100008313000065D712000004FFFFFFFFF0000000030000655512000004FFFFFFFF3000000003200065551000000455555530000000000370006555FFFFFFF755555530000000000BF00065550000000055555530000000008FF10065555555555555555530C1000000EFF30065555555555555555530E3000FFFFFF70065555555555555555530F7000FFF3EF70065555555555555555530F70000000000000000000000000000000000000FFFFFFFFFF7FFFFFDFFFF7FFFFFDFFFF70FF5CFDF71F7F74CFDF11F7FFFFFD764C70FF5DFD775F7F77DFDBD5F7FFFFFD75FE70F85DFD365F7744DFD115F7FFFFFD76EE70FF5DFD775F7FF5DFDB75F7FFFFFD75FE70FF5CFDF71F7F74CFDF11F7FFFFFD76CE70FFFFFDFFFF7FFFFFDFFFF7FFFFFDFFFF70
  103.   PLA2
  104.     \<< PICT { # 0h # 39h } # 83h # 7h BLANK REPL 1 SHOWC 7 CF
  105.       DO 1 SCOR DUP 17 \>= SWAP DUP 7 \>= 11 \<= AND 5 FS? AND OR
  106.         IF
  107.         THEN 7 SF WHO
  108.         ELSE 1 DEAL 1 SCOR
  109.           IF 21 >
  110.           THEN "Dealer Busted!" BLNK WIN 7 SF
  111.           END
  112.         END
  113.       UNTIL 7 FS?
  114.       END
  115.     \>>
  116.   PLA
  117.     \<<
  118.       IF BJC
  119.       THEN PICT { # 0h # 39h }
  120.         IF 'PC(2)' EVAL 3 > BET 2 * M > OR
  121.         THEN PBB 14 CF
  122.         ELSE PBB2 14 SF
  123.         END REPL { # 0h # 0h } PVIEW 9 CF
  124.         DO 0 WAIT IP 15 CF
  125.           IF DUP 13 == 14 FS? AND
  126.           THEN DROP 11 15 SF
  127.           END
  128.           IF DUP 16 ==
  129.           THEN DROP 9 SF PLA2
  130.           ELSE
  131.             IF DUP 11 ==
  132.             THEN 2 DEAL
  133.               IF 1 FS?
  134.               THEN DROP 9 SF
  135.               ELSE 2 SCOR 5 CF
  136.                 IF 21 \<=
  137.                 THEN DROP
  138.                   IF 15 FS?
  139.                   THEN 9 SF PLA2
  140.                   END 
  141.                 ELSE DROP "Busted!" BLNK LOSE 9 SF
  142.                 END
  143.               END
  144.             ELSE DROP
  145.             END
  146.           END
  147.         UNTIL 9 FS?
  148.         END
  149.       END
  150.     \>>
  151.   WHO
  152.     \<< 1 2
  153.       FOR I I SCOR
  154.         IF 5 FS?
  155.         THEN
  156.           IF DUP 12 <
  157.           THEN 10 +
  158.           END
  159.         END DUP PICT 'PC(I)' EVAL 8 * 10 + R\->B I 29 * 19 - R\->B 2 \->LIST
  160.       ROT 1 \->GROB REPL
  161.       NEXT DUP2
  162.       IF ==
  163.       THEN DROP2 "Tie - Push" MSG DROP
  164.       ELSE
  165.         IF >
  166.         THEN LOSE
  167.         ELSE WIN
  168.         END
  169.       END
  170.     \>>
  171.   PBB2
  172. GROB 131 7 FFFFFDFFFF7FFFFFDFFFF7FFFFFDFFFF70FBA8FDFFFF7F99DFDFFFF7FFFFF5444560FBADFDFFFF7F55DFDFFFF7FFFFF5F65450F3ADFDFFFF7F59DFDFFFF7FFFFF5C64450FBADFDFFFF7F55DFDFFFF7FFFFFDD65450FBADFDFFFF7F991FDFFFF7FFFFF5C65560FFFFFDFFFF7FFFFFDFFFF7FFFFFDFFFF70
  173.   QUIT
  174.     \<< PICT { # 0h # 39h } QPIC REPL
  175.       DO 0 WAIT IP
  176.         IF DUP 16 ==
  177.         THEN DROP "You had $" M \->STR + BYE
  178.         ELSE
  179.           IF 11 ==
  180.           THEN
  181.             IF M NOT
  182.             THEN "You have no money" BYE
  183.               IF M 10000 \>=
  184.               THEN "You broke the Bank!" BYE
  185.               END
  186.             END 1
  187.           ELSE 0
  188.           END
  189.         END
  190.       UNTIL
  191.       END
  192.     \>>
  193.   BJC
  194.     \<< 8 CF 1 SCOR
  195.       IF 11 == 5 FS?C AND
  196.       THEN 8 SF
  197.       END 2 SCOR
  198.       IF 11 == 5 FS?C AND
  199.       THEN
  200.         IF 8 FS?
  201.         THEN 1 SHOWC "Double Blackjack" BLNK 0
  202.         ELSE 1 SHOWC "Your Blackjack" BLNK 11 SF WIN 0
  203.         END
  204.       ELSE
  205.         IF 8 FS?
  206.         THEN 1 SHOWC "Dealer Blackjack" BLNK LOSE 0
  207.         ELSE 1
  208.         END
  209.       END
  210.     \>>
  211.   BYE
  212.     \<< FLGS STOF MSG PICT { # 0h # 39h } # 83h # 7h BLANK REPL CLEAR 0 WAIT
  213.       DROP ERASE TEXT KILL
  214.     \>>
  215.   MPIC2
  216. GROB 129 13 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
  217.   QPIC
  218. GROB 131 7 FFFFFDFFFF7FFFFFDFFFF7FFFFFDFFFF703A54DDFFFF7FFFFFDFFFF7FFFFFD765170BA65DDFFFF7FFFFFDFFFF7FFFFFDB55B70B27DEDFFFF7FFFFFDFFFF7FFFFFDB55B70BA6CEDFFFF7FFFFFDFFFF7FFFFFDB65B703A5DEDFFFF7FFFFFDFFFF7FFFFFD754B70FFFFFDFFFF7FFFFFDFFFF7FFFFFDFFFF70
  219.   FLGS { # B800004200114FF2h # 2101h }
  220.   WIN
  221.     \<< "You Win" MSG DROP BET
  222.       IF 11 FS?C
  223.       THEN 1.5 *
  224.       END
  225.       IF 15 FS?C
  226.       THEN 2 *
  227.       END 'M' STO+
  228.     \>>
  229.   LOSE
  230.     \<< "You Lose" MSG DROP BET
  231.       IF 15 FS?C
  232.       THEN 2 *
  233.       END NEG 'M' STO+
  234.       IF M BET <
  235.       THEN M 'BET' STO
  236.       END
  237.     \>>
  238.   MPIC
  239. GROB 131 15 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
  240.   PBB
  241. GROB 131 7 FFFFFDFFFF7FFFFFDFFFF7FFFFFDFFFF70FBA8FDFFFF7FFFFFDFFFF7FFFFF5444560FBADFDFFFF7FFFFFDFFFF7FFFFF5F65450F3ADFDFFFF7FFFFFDFFFF7FFFFF5C64450FBADFDFFFF7FFFFFDFFFF7FFFFFDD65450FBADFDFFFF7FFFFFDFFFF7FFFFF5C65560FFFFFDFFFF7FFFFFDFFFF7FFFFFDFFFF70
  242.   PB2
  243.     \<< { # 0h # 0h } PVIEW 0 WAIT IP
  244.       IF DUP 16 ==
  245.       THEN DROP 1
  246.       ELSE
  247.         IF DUP 15 <
  248.         THEN 10 - MBA SWAP GET BET +
  249.           IF DUP 10 <
  250.           THEN DROP 10
  251.           END
  252.           IF DUP 500 >
  253.           THEN DROP 500
  254.           END
  255.           IF DUP M >
  256.           THEN DROP M
  257.           END 'BET' STO 0
  258.         ELSE DROP 0
  259.         END
  260.       END
  261.     \>>
  262.   PBET
  263.     \<< PICT { # 0h # 0h } MBB REPL PICT { # 4Fh # Ah } M \->STR 1 \->GROB REPL
  264.       DO PICT { # 37h # 28h } "$" BET \->STR +
  265.         IF BET 100 <
  266.         THEN " " +
  267.         END 3 \->GROB REPL PB2
  268.       UNTIL
  269.       END ERASE
  270.     \>>
  271.   BJH
  272.     \<< ERASE { 0 0 } 'PC' STO { { } { } } 'PT' STO PBET 2 DEAL 3 SF 1 DEAL 3
  273.       CF 2 DEAL 1 DEAL 11 CF
  274.       IF 1 FC?
  275.       THEN PLA
  276.         IF 1 FC?
  277.         THEN QUIT
  278.         END
  279.       END
  280.     \>>
  281.   SHUFL
  282.     \<< "Shuffling" MSG CDS OBJ\-> DROP 1 200
  283.       START RAND 52 * CEIL ROLL RAND 52 * 1 + IP ROLLD
  284.       NEXT 52 \->LIST 'CDS' STO 52 'NC' STO 1 CF PICT { # 0h # 0h } ROT REPL
  285.     \>>
  286.   BET 50
  287.   MBA { -10 10 -50 50 }
  288.   M 950
  289.   NC 47
  290.   CDS { { "Q" 1 } { "4" 2 } { "6" 2 } { "7" 4 } { "7" 2 } { "5" 1 } { "A" 3 }
  291. { "6" 4 } { "T" 4 } { "J" 2 } { "3" 3 } { "2" 4 } { "2" 2 } { "5" 3 } { "K" 3 }
  292. { "K" 4 } { "9" 1 } { "K" 1 } { "J" 1 } { "T" 1 } { "9" 2 } { "J" 3 } { "3" 4 }
  293. { "6" 3 } { "2" 3 } { "8" 3 } { "7" 3 } { "4" 3 } { "Q" 4 } { "A" 2 } { "9" 3 }
  294. { "A" 1 } { "A" 4 } { "7" 1 } { "K" 2 } { "5" 2 } { "T" 2 } { "Q" 3 } { "J" 4 }
  295. { "6" 1 } { "8" 4 } { "8" 2 } { "9" 4 } { "3" 2 } { "2" 1 } { "Q" 2 } { "4" 1 }
  296. { "T" 3 } { "5" 4 } { "8" 1 } { "3" 1 } { "4" 4 } }
  297.   EC
  298. GROB 15 27 EFF31004100410041004100410041004100410041004100410041004100410041004100410041004100410041004100410041004EFF3
  299.   BC
  300. GROB 15 27 FFF710049FF45555DAA55555DAA55555DAA55555DAA55555DAA55555DAA55555DAA55555DAA55555DAA55555DAA555559FF41004FFF7
  301.   SUIT { GROB 7 7 22559414224180 GROB 7 7 80412214224180
  302.          GROB 7 7 80C1A2F7A280C1 GROB 7 7 80C1E3F7F7C1E3 }
  303.   PPAR { (-6.5,-3.1) (6.5,3.2) X 0 (0,0) FUNCTION Y }
  304. END
  305.